package cn.tedu.opp;


import java.util.Scanner;

/**
 * @author: Dsi
 * @date: 2021/11/10 11:13
 * @description:该类用于异常的入门案例
 */
public class ExceptionDemo {
    public static void main(String[] args) {
        //method1();
        method2();//捕获处理，自己解决
        method3();//向上抛出，谁调用谁解决

    }

    private static void method3() {
        /**
         * 异常捕获处理的格式：
         try{
              可能会抛出异常的代码
         }catch(异常的类型 异常的名字）{
          万一捕获到预先设定的异常，进行处理方案
         }
         try-catch结构可以嵌套，
         */
        int c=0;
        do {
            try {
                System.out.println("输入一个数字:");
                int a = new Scanner(System.in).nextInt();
                System.out.println("输入第二个数字:");
                int b = new Scanner(System.in).nextInt();
                System.out.println(a / b);
            }catch (Exception a){
                /*使用多态的思想，无论是什么子异常，统一看做是父类型Exception
                做出更加通用的解决方案，甚至可以只写这一个
                 */
                System.out.println("重写");
            }
            c++;
        }while(c<=100);
    }

    private static void method2() {

    }

    private static void method1() {
            System.out.println("输入一个数字:");
            int a = new Scanner(System.in).nextInt();
            System.out.println("输入第二个数字:");
            int b = new Scanner(System.in).nextInt();
            System.out.println(a / b);
            //输入10和3.4，报错，InputMismatchException输入不匹配异常
            //输入10和0，报错，ArithmeticException算数异常
        /**1.不要害怕BUG，直面
         * 2.看报错提示，确定报错的方向
         * 3.看报错的行号，确定报错的位置
         * 注意：源码不会出错 ，要看的是自己写的代码
         */
    }
}

